iT邦幫忙

2021 iThome 鐵人賽

DAY 25
0

本篇文章同步發表在 HKT 線上教室 部落格,線上影音教學課程已上架至 UdemyYoutube 頻道。另外,想追蹤更多相關技術資訊,歡迎到 臉書粉絲專頁 按讚追蹤喔~

程式碼範例

範例名稱:獲取位置經緯度
開發人員:HKT (侯光燦)
程式語言:Kotlin
開發環境:Android Studio 4.1.2 & Android 11 & Kotlin 1.4.30
授權範圍:使用時必須註明出處且不得為商業目的之使用
範例下載點:點我下載

今天要來跟大家介紹的是,如何使用新式 Fused Location Provider API 來獲取經緯度座標位置。而 Fused Location Provider API 與舊式 LocationManager 相比,Google 官方聲稱,使用上更簡單,讓裝置更省電且可以在更精準的情況下,定位出當下位置。

最後介紹如何透過網頁版的 Google Map 來驗證,我們獲取出來的座標位置是否正確。

添加 Fused Location Provider API 依賴庫 (dependencies)

在 GRADLE (Module) 層級 dependencies 內加入:

implementation 'com.google.android.gms:play-services-location:17.0.0'

在獲取到位置權限與確認GPS已開啟後,加入獲取經緯度方法

private fun getDeviceLocation() {
    try {
        if (locationPermissionGranted
        ) {
            val locationRequest = LocationRequest()
            locationRequest.priority = LocationRequest.PRIORITY_HIGH_ACCURACY
            //更新頻率
            locationRequest.interval = 1000
            //更新次數,若沒設定,會持續更新
            //locationRequest.numUpdates = 1
            mLocationProviderClient.requestLocationUpdates(
                locationRequest,
                object : LocationCallback() {
                    override fun onLocationResult(locationResult: LocationResult?) {
                        locationResult ?: return
                        Log.d(
                            "HKT",
                            "緯度:${locationResult.lastLocation.latitude} , 經度:${locationResult.lastLocation.longitude} "
                        )
                    }
                },
                null
            )

        } else {
            getLocationPermission()
        }
    } catch (e: SecurityException) {
        Log.e("Exception: %s", e.message, e)
    }
}

輸出結果

D/HKT: 緯度:25.0338483 , 經度:121.5645283 
D/HKT: 緯度:25.0338483 , 經度:121.5645283 
D/HKT: 緯度:25.0338483 , 經度:121.5645283 

Google Map 網頁版,驗證座標位置

線上 Google Map 網頁驗證位置,需在搜尋欄位中輸入「緯度, 經度」,如「25.0338483, 121.5645283」。

輸出結果

透過這樣的方式,在搜尋欄位中,輸入我們從裝置中獲取出來的座標位置,即可以驗證我們的座標位置是否正確。

參考資料

HKT 線上教室
https://tw-hkt.blogspot.com/

Freepik
https://www.freepik.com/


那今天【iThome 鐵人賽】就介紹到這邊囉~

順帶一提,KT 線上教室,臉書粉絲團,會不定期發佈相關資訊,不想錯過最新資訊,不要忘記來按讚,追蹤喔!也歡迎大家將這篇文章分享給更多人喔。

我們明天再見囉!!!掰掰~


上一篇
Day 24:檢查GPS狀態
下一篇
Day 26:Google Map 範本學習(1)
系列文
Android 口罩地圖入門實戰 30 天 (使用 Kotlin 程式語言)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言